Recommendations for Kubernetes

While Pyramid strongly recommends using the established configuration tools for creating a Kubernetes cluster, it is entirely possible for users to build their own configurations. The following items will help explain the ingredients of a Pyramid cluster and the basic requirements.

In general, Pyramid recommends that administrators should use the configuration tools to create Kubernetes cluster configurations.

Kubernetes Minimum Setup

Item

Setting

Comment

Memory and CPU

Host CPUs

Min 16 cores

Pyramid does NOT recommend launching a Kubernetes cluster of Pyramid with less than 16 cores and 16 GB of memory in the initial node.

Host Memory

Min 16 GB Ram

Host Disk

Min HDD space of 4 to 8 GB

Use of very fast disks, such as SSDs, is highly recommended.

Client

 

 

Client Browser

Any fully compliant HTML5 browser

(For example, Chrome, Edge, Opera, FireFox, Safari.)

The client browser can operate on any operating system, as long as it can connect to the web application hosted on the relevant server.

IE11 is no longer supported for use with Pyramid 2023.

Client Screen Resolution

  • Desktop: Min. 1280 x 720
  • Tablet: Most normal tablet resolutions
  • Phone: Any smart phone resolution

The desktop client must support the minimum screen size to operate effectively.

Database Repository

Repository Type

  • SQL Server 2014 onwards

See details below on deprecated databases.

For more information about supported SQL versions, see Microsoft SQL Server Lifecycle.

  • PostgreSQL 12 onwards

See details below on deprecated databases.

  • Oracle 19c onwards

See details below on deprecated databases.

Database sizing

  • 8 CPU cores
  • 8 to 12 GB Ram

The repository is not optional. It should be hosted in a persistent location that can be easily backed up and restored. Cloud hosted RDS is recommended when deploying in the cloud.

If the repository is not hosted on the cloud, then very fast disks, like SSDs, are required.

Using a database inside the Kubernetes cluster itself is DEFINITELY NOT recommended.

Host Disk

Minimum HDD space of 2 - 4 GB

Ensure there is sufficient space to handle a growing repo database.

File Storage

The Pyramid Kubernetes cluster cannot facilitate its own persistent file storage (needed for rendered publications or holding uploaded data files sources). A persistent, hosted storage engine must be supplied to facilitate this with ample room to store uploaded files and store published content. For example, AWS S3, Azure Blob storage, or SFTP.

Services

  • A Pyramid cluster must at least contain one router service, one web service, and one runtime service for it to function. We strongly recommend two routers for fail-safe (see container types below).
  • The task service must be added for printing, running of data preparation tasks and publication tasks. If the cluster is not performing any of these activities, it's possible to ignore the task service.
  • The DS/ML service runs all Python and R engines. Since there are numerous features throughout the product, at least one AI service is recommended.
  • The NLP service runs natural language querying and other AI centric loads. Since there are numerous features throughout the product, at least one NLP service is recommended.
  • The GIS service allows geospatial analytics on maps. If this is not going to be used, it can be left out of the cluster.
  • The Solve service supports the Solve optimization engine. If this is not going to be used, it can be left out of the cluster.

Container Types

The following container types indicate where to find each container and what it's used for. See scaling documentation for more details.

  • pyramidanalytics/rtr The Router Server is used to route all internal requests between the different nodes in the Pyramid cluster. Load balancing of external incoming requests to the web servers should be handled by an external web load balancing technology.
  • docker pull pyramidanalytics/rtr

  • pyramidanalytics/ws The Web Server is used to host the client applications and act as the gateway to the Pyramid cluster.
  • docker pull pyramidanalytics/ws

  • pyramidanalytics/rte The Runtime Server is used to process all live, interactive requests in the Pyramid cluster. This includes all data queries - the backbone of the application.
  • docker pull pyramidanalytics/rte

  • pyramidanalytics/te The Task Server is used to process all batch related activities required in the system. This includes batch publication jobs, ETL data processing jobs and other background activities.
  • docker pull pyramidanalytics/te

  • The DS/ML Server is used to process all Data Science and AI related activities in the Pyramid cluster, including Python and R. The container comes with base Python and R pre-installed. There are two possible containers depending on whether you are installing the full service or the standard service. Full is heavier and includes the full Anaconda deployment. Standard, recommended, is lighter and includes Miniconda.
  • pyramidanalytics/nlp The NLP Server processes all natural language related activities in the Pyramid cluster.
  • docker pull pyramidanalytics/nlp

  • pyramidanalytics/gis The GIS server contains the information to drive geospatial analysis in Pyramid.
  • docker pull pyramidanalytics/gis

  • pyramidanalytics/solve The Solve Server is used to process all solver and optimization related activities in the Pyramid cluster.
  • docker pull pyramidanalytics/solve